A computer user typically communicates with applications running on the computer via a user interface (UI). Referring to FIG. 1, a window 100 on a computer screen is shown. The window 100 typically has a title bar 102 where the application name is often displayed. The window 100 typically also has a number of user interface elements such as menu items 104 or push buttons (not shown in FIG. 1). A user may select a menu item 104 and a number of options associated with that menu item 104 may appear as a drop down menu 106.
Referring to FIG. 2, user interfaces 200 generally use various types of ancillary information 204 associated with elements 202 of the user interface in order to improve the user experience. Examples of such ancillary information include:
(a) Text or graphics 206 used to label and identify the user interface element. These text or graphics often include:                (i) Translations 212 into a range of languages or dialects; and        (ii) Alternative versions 214 of graphics suitable for different displays;        
(b) Context-sensitive help 208 text and hints; and
(c) Accessibility and assistive resources 210.
A known method of associating the user interface ancillary information with user interface elements is by using a fixed identifier internal to the application that is used to link a particular user interface element (e.g., menu item, push button, voice menu, etc.) 202 with a piece of user interface ancillary information (e.g., an alternative translation for the text of the user interface element, alternative graphics, context help for the item, etc.) 206. These fixed identifiers are typically allocated during product development and assigned to the user interface elements 202. User interface ancillary information 206 is then tagged with the relevant fixed identifier to associate it with the corresponding user interface elements 202.
The problems associated with this known approach include that the user interface ancillary information 206 has to be developed in close cooperation with the team developing the application, and any changes to the user interface structure require corresponding changes to the user interface ancillary information 206, that is, the user interface ancillary information 206 is liable to change, even from version to version. Another problem is that it is difficult to make additions to or to modify the user interface ancillary information 206 once an application has been distributed and installed by an end user.
The use of fixed identifiers also means that information of each type must generally be provided for every single user interface element 202, or provide only a basic and naive level of fall-back in cases where no specific match is found. For example, every item must be given help text, however trivial, or a simple fallback to help for the form or panel or the like takes place.
There is also generally no structured or integrated mechanism for user participation in modifying, updating or extending the ancillary information 206 provided for an application, and for providing feedback or requesting assistance. Similarly, there is no straightforward way for the application developers to monitor the use of the ancillary information 206 that was provided and detect problems or shortcomings.